//
//  LS_StatueViewModel.swift
//  weibo
//
//  Created by 罗李苏 on 16/5/25.
//  Copyright © 2016年 Apple. All rights reserved.


//  处理cell的显示的模型数据
//  通过一个模型中存储的数据 将不能够直接显示的数据 在viewmodel中处理完成(在viewmodel中洗数据)

import UIKit

class LS_StatueViewModel: NSObject {
    var status: LS_Status?
    //认证类型的图片
    var verifiedImage:UIImage?
    var mbrankImage:UIImage?
    var headIconURL:NSURL?
    ///微博来源
    var sourceText: String?
    ///转发数
    var repostsText: String?
    ///评论数
    var commentsText: String?
    ///点赞数
    var attitudesText: String?
    ///微博时间
    var time: String{
        return (NSDate.sinaDate(status?.created_at ?? "")?.fullDescription())!
    }
    
    //视图初始化(相当于OC中 属性的setter 方法)
    init(status: LS_Status) {
        super.init()
        
        self.status = status
        //用户头像地址
        headIconURL = NSURL(string: status.user?.profile_image_url ?? "")
        //处理认证类图片
        dealVerifidImage()
        //处理用户等级图片
        dealMbrankImage()
        //处理微博显示时间
        dealSourceText()
        //微博来源
        commentsText = dealToolBarText(status.comments_count, defaultText: "评论")
        repostsText = dealToolBarText(status.reposts_count, defaultText: "转发")
        attitudesText = dealToolBarText(status.attitudes_count, defaultText: "点赞")
    }

}

extension LS_StatueViewModel{
    //在这个方法计算底部工具条显示的文字
    //如果没有评论或者转发或者赞  就显示默认文字
    //- 有相关的数据 就显示对应的数据,但是如果超过一万条 就应该显示多少万条
    func dealToolBarText(count: Int,defaultText: String) -> String{
        
        if count <= 0 {
            return defaultText
        }
        //大于一万
        if count > 10000 {
            return "\(Double(count / 1000) / 10)万"
        }
        return "\(count)"
    }
    //用户等级的处理方法
    private func dealMbrankImage(){
        
        let mbType = status?.user?.mbrank ?? 0
        if mbType > 0 && mbType < 7 {
            mbrankImage = UIImage(named: "common_icon_membership_level\(mbType)")
        }
            
        
        }
    //认证图片的处理方法
    private func dealVerifidImage(){
        
        let verifiedType = status?.user?.verified ?? 0
        if verifiedType == 1 {
            verifiedImage = UIImage(named: "avatar_vip")
        }
    
    }
    //微博来源的处理方法
    private func dealSourceText(){
        //截取字符串
        //开始的标志
        let startFlag = "\">"
        let endFlag = "<a>"
        //需要截取的字符串
        let str = status?.source ?? ""
        
        //开始截取的位置
        let startRang = str.rangeOfString(startFlag)
        //结束的位置
        let endRang = str.rangeOfString(endFlag)
        if let start = startRang , end = endRang{
            //确定截取范围
            let rang = start.endIndex..<end.startIndex
            //截取字符串并赋值
            sourceText = str.substringWithRange(rang)
        }
        //不满足条件就不赋值
    }

}